#ifndef ObjectClass_h
#define ObjectClass_h
///------------------------------------------------------------
// Description:
// ------------
//
//	Declarations of objects used
//      by TopNtuple.cc and ana.cc
//
//      Can be used by any other class.
//      Simply include the file:
//
//  #include HighLevelObjects.hh
//
//      and compile/load the shared library:
//
//  gSystem->CompileMacro("HighLevelObjects.cc","k");
//
//------------------------------------------------------------

#include "TObject.h"
#include "TString.h"
#include <iostream>
#include <ctime>

//----------------------------------
// PMT
//----------------------------------
class PMT : public TObject {
  public:
  
  PMT();
  PMT(float xx,float yy,float zz,float tt,float kinematicE);
  virtual ~PMT(){};
  void SetObjects(float xx,float yy,float zz,float tt,float kinematicE);
  
  float xpos;
  float ypos;
  float zpos;
  float time;
  float ekin;

  ClassDef(PMT,1) 
};

//----------------------------------
// Particle
//----------------------------------

class Particle : public TObject {
  public:

  Particle();
  virtual ~Particle(){};
  void SetObjects(TString name,TString procname,TString volname,TString volname2,int trackid,int parentid,float xx1,float yy1,float zz1,float xx2,float yy2,float zz2,float vpx,float vpy,float vpz,float depositE,float tt,float kineticE);

  TString particlename;
  TString processname;
  TString volumename;
  TString volumename2;
  int TrackID;
  int ParentID;
  float xpre;
  float ypre;
  float zpre;
  float xpos;
  float ypos;
  float zpos;
  float vpx;
  float vpy;
  float vpz;
  float edep;
  float time;
  float ekin;

  ClassDef(Particle,1)
};

#endif
